Some social networking platforms have many millions of users and manage a significant amount of data associated with the users. To manage the data efficiently, the social networking platforms use some data partitioning services. One such data partitioning service is data sharding, which statically creates data partitions (“shards”). The data is stored as multiple shards in which each shard stores a subset of the data. However, the data partitioning services often become inefficient over time. Typically, a client computing device (“client device”) that consumes the data accesses the data using a shard identification (ID), which indicates the shard in which the requested data is stored. If the shard changes, e.g., new shards are added to accommodate ever growing data, the data allocation may change, e.g., data can be moved from one shard to another. When the allocation changes, the mapping or the formula used by the client devices to identify the shard in which the data is stored may have to be updated and this process consumes significant amount of computing resources as many client devices may have to be updated. Some social networking platforms avoid this problem by allocating or overprovisioning the shards, e.g., allocating more shards than required to store a specified amount of the data, thus resulting in wastage of data storage resources (e.g., server computing devices, rack space in data storage devices, power).